package com.mastercard.assets.web.struts.actions;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.mastercard.assets.jpa.TblAsset;
import com.mastercard.assets.jpa.TblPaqueteRegional;
import com.mastercard.assets.util.MCUtil;
import com.mastercard.assets.util.dao.MasterCardDAO;
import com.mastercard.assets.web.struts.forms.AssetModificarPaquetesForm;
import com.mastercard.assets.web.util.to.UserLogin;
import java.util.Date;

public class AssetsModificarPaquetesRegistrar
	extends
		Action
{
	public ActionForward execute(
							ActionMapping mapping , 
							ActionForm form ,
							HttpServletRequest request , 
							HttpServletResponse response )
		throws 
			IOException , 
			ServletException
	{
		HttpSession session = request.getSession( ) ;
		
		// en caos de null
		if( session == null )
			return mapping.findForward( "noLogin" ) ;
		
		// toma el userLogin
		UserLogin user = ( UserLogin ) session.getAttribute( "UserLogin" ) ;
		
		// en caso de null
		if( user == null )
			return mapping.findForward( "noLogin" ) ;
                
                int cvePais = user.getTblUsuario( ).getTblPais( ).getCvePais( ) ;
		
		try
		{
			// convierte el form y toma la clave
			AssetModificarPaquetesForm f = ( AssetModificarPaquetesForm ) form ;
			
//			System.out.println( "/////////////////////////: " + f.getOperation( ) ) ;
//			
			// toma la accion
			int operation = f.getOperation( ) ;
			int cveAsset = f.getCveAsset( ) ;
			
			System.out.println( "/////////////////////////: " + operation ) ;
			
			// en caso de que sea operacion 1 (agregar paquete)
			if( operation == 1 )
			{
				
				// toma los datos necesarios
				int cantidad = f.getCantidadI( ) ;
				int tipoHabitacion = f.getTipoHabitacion( ) ;
				int fondeadoA = f.getFondeadoA( ) ;
				int facturadoA = f.getFacturadoA( ) ;
                                int rolId = user.getActualRoleId( ) ;
                                
                                if ( rolId == 6 ) {
                                    boolean res = MasterCardDAO.addNewPackagesRegional( cveAsset , cantidad , tipoHabitacion , fondeadoA , facturadoA ) ;
                                } else {
                                    // guarda el paquete para CM por Pais.
				boolean res = MasterCardDAO.addNewPackages( cveAsset , cantidad , tipoHabitacion , fondeadoA , facturadoA ) ;
                                }
				
				
				
//				// actualiza el manejador de paquetes
//				TblAsset asset = MasterCardDAO.findAssetById( cveAsset ) ;
//				
//				MCUtil.updatePackageManager( MasterCardDAO.getAllPackagesOfAsset( asset.getCveAsset( ) , 1 ) , f.getPackageManager( ) ) ;
//				
//				// coloca el form en el request
//				request.setAttribute( "AssetModificarPaquetesForm" , f ) ;
//				
				// coloca la siguiente pagina
				user.setNextWorkArea( "/AssetsModificarPaquetesIn.do?cveAsset=" + cveAsset ) ;
			}
			// en caso de que nos digan que quiere editar el asset
			if( operation == 2 )
			{
				// siguiente area
				user.setNextWorkArea( "/AssetsEditarIn.do?cveAsset=" + cveAsset ) ;
			}
			// en caso de que quiera regresar al listado de asset
			if( operation == 3 )
			{
				// siguiente area
				user.setNextWorkArea( "/AssetsDetalleIn.do?cveAsset=" + cveAsset ) ;
			}
			// en caso de que quiera regresar al listado de asset
			if( operation == 4 )
			{
                            if( user.getActualRoleId() == 6 ) {
                                // siguiente area
				user.setNextWorkArea( "/AssetsAsignacionPaquetesInRegional.do?cveAsset=" + cveAsset ) ;
                            } else {
                                // siguiente area
				user.setNextWorkArea( "/AssetsAsignacionPaquetesIn.do?cveAsset=" + cveAsset ) ;
                            }
				
			}
			// en caso de que quiera regresar al listado de asset
			if( operation == 5 )
			{

                            if( user.getActualRoleId( ) == 6 ) {
                                user.setNextWorkArea( "/WEB-INF/pages/WorkArea/AssetsRegionalIndex.jsp" ) ;
                            }else {
                                user.setNextWorkArea( "/WEB-INF/pages/WorkArea/AssetsIndex.jsp" ) ;
                            }				
                                
                                
                                try{
                                    
                                    List< TblAsset > allAssets = new ArrayList< TblAsset >( ) ;
                                    
                                    if( user.getActualRoleId( ) == 6 ) {
                                        allAssets = MasterCardDAO.getAllActiveAssetsByRegional( ) ;
                                    } else {
                                        allAssets = MasterCardDAO.getAllActiveAssetsByPais( cvePais ) ;
                                    }

                                        
                                        List< TblAsset > oldAssets = new ArrayList< TblAsset >( ) , postAssets  = new ArrayList< TblAsset >( ) ;
                                        SimpleDateFormat formato = new SimpleDateFormat("yyyyMMdd") ;
                                        // toma la fecha actual
                                        Date fec = new Date();                        
                                        String cadenaFecha = formato.format(fec);
                                        int fecActual = Integer.parseInt( cadenaFecha ) , AssetFec ;
                                        String fe ;
                        
                                        for ( TblAsset n : allAssets ){
                                        Date fecAsset = n.getFecha() ;
                                        fe = formato.format(fecAsset) ;
                                        AssetFec = Integer.parseInt( fe ) ;
                            
                                        if ( fecActual > AssetFec  ){
                                            oldAssets.add( n ) ;
                                        }else{
                                        postAssets.add( n ) ;
                                        }
                            
                                    }			
                        
                                    System.out.println( "anterior::: " + oldAssets.size() + " Actual::: " + postAssets.size() ) ;
                                    request.setAttribute( "Assets" , allAssets ) ;
                                    request.setAttribute( "antAssets" , oldAssets ) ;
                                    request.setAttribute( "postAssets" , postAssets ) ;                        
		
                                    user.clearMessageError( ) ;
                                }catch( Exception e )
                                {
                                    MasterCardDAO.closeEntityManager( ) ;
//                                  e.printStackTrace( ) ;
                                    request.setAttribute( "Assets" , new ArrayList< TblAsset >( ) ) ;
                                }
                                
				MasterCardDAO.closeEntityManager( ) ;
				return mapping.findForward( "errors" ) ;
			}
			
			if( operation == 6 )
			{
				// revisa cuantos a eliminar
				int eliminar = f.getEliminar( ) ;
				int quantity = 0 ;
				
				TblAsset asset = MasterCardDAO.findAssetById( cveAsset ) ;
				
				System.out.println( 1 ) ;
				
				TblAsset item = asset ;
				
				switch( eliminar )
				{
					case 1 :
						
						// toma paquetes a elimina
						quantity = f.getEliminarSLLI( ) ;
						
						if( quantity < 1 )
						{
							user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.SLLDropNegative" , quantity ) ) ;
							
//							return mapping.findForward( "successW" ) ;
						}
						else
						{
							
							try
							{
								// verifica cuantos paquetes estan disponibles
	//							int available = MasterCardDAO.quantityOfPackagesNotAssigned( cveAsset , 1 , 1 , 1 ) ;
								
								int available = MasterCardDAO.quantityOfPackagesNotAssigned( cveAsset , 1 , 1 , 1 , 1 ) ;
								
//								System.out.println( "Por Borrar: " + available ) ;
//								System.out.println( "Cantidad: " + quantity ) ;
//								
								// en caso d que los disponibles sean menor que los que se quiere borrar
								if( available < quantity )
								{
									user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.SLLDropOver" , available ) ) ;
									
	//								System.out.println( "Cve a buscar::: " + cve ) ;
									
//									return mapping.findForward( "successW" ) ;
								}
								else
								{
									MasterCardDAO.eraseQuantityOfPackages( cveAsset , quantity , 1 , 1 , 1 , 1 ) ;
									
									f.setEliminarSLL( "" ) ;
								}
							}catch( Exception e )
							{
								user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.SLLDropError" , e.getMessage( ) ) ) ;
//								
//								return mapping.findForward( "successW" ) ;
							}
						}
						
						break ;
					case 2 :
						
						// toma paquetes a elimina
						quantity = f.getEliminarSLRI( ) ;
						
						if( quantity < 1 )
						{
							user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.SLRDropNegative" , quantity ) ) ;
							
//							return mapping.findForward( "successW" ) ;
						}
						else
						{
							
							try
							{
								// verifica cuantos paquetes estan disponibles
								int available = MasterCardDAO.quantityOfPackagesNotAssigned( cveAsset , 1 , 1 , 2 , 1 ) ;
								
								// en caso d que los disponibles sean menor que los que se quiere borrar
								if( available < quantity )
								{
									user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.SLRDropOver" , available ) ) ;
									
//									return mapping.findForward( "successW" ) ;
								}
								else
								{
									MasterCardDAO.eraseQuantityOfPackages( cveAsset , quantity , 1 , 1 , 2 , 1 ) ;
									
									f.setEliminarSLR( "" ) ;
								}
							}catch( Exception e )
							{
								user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.SLRDropError" , e.getMessage( ) ) ) ;
								
//								return mapping.findForward( "successW" ) ;
							}
						}
						
						break ;
					case 3 :
						
						// toma paquetes a elimina
						quantity = f.getEliminarSRLI( ) ;
						
						if( quantity < 1 )
						{
							user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.SRLDropNegative" , quantity ) ) ;
							
//							return mapping.findForward( "successW" ) ;
						}
						else
						{
							
							try
							{
								// verifica cuantos paquetes estan disponibles
								int available = MasterCardDAO.quantityOfPackagesNotAssigned( cveAsset , 1 , 2 , 1 , 1 ) ;
								
								// en caso d que los disponibles sean menor que los que se quiere borrar
								if( available < quantity )
								{
									user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.SRLDropOver" , available ) ) ;
									
//									return mapping.findForward( "successW" ) ;
								}
								else
								{
									
									MasterCardDAO.eraseQuantityOfPackages( cveAsset , quantity , 1 , 2 , 1 , 1 ) ;
									
									f.setEliminarSRL( "" ) ;
								}
							}catch( Exception e )
							{
								user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.SRLDropError" , e.getMessage( ) ) ) ;
								
//								return mapping.findForward( "successW" ) ;
							}
						}
						
						break ;
					case 4 :
						
						// toma paquetes a elimina
						quantity = f.getEliminarSRRI( ) ;
						
						if( quantity < 1 )
						{
							user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.SRRDropNegative" , quantity ) ) ;
							
//							return mapping.findForward( "successW" ) ;
						}
						else
						{
							
							try
							{
								// verifica cuantos paquetes estan disponibles
								int available = MasterCardDAO.quantityOfPackagesNotAssigned( cveAsset , 1 , 2 , 2 , 1 ) ;
								
								// en caso d que los disponibles sean menor que los que se quiere borrar
								if( available < quantity )
								{
									user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.SRRDropOver" , available ) ) ;
									
//									return mapping.findForward( "successW" ) ;
								}
								else
								{
									MasterCardDAO.eraseQuantityOfPackages( cveAsset , quantity , 1 , 2 , 2 , 1 ) ;
									
									f.setEliminarSRR( "" ) ;
								}
							}catch( Exception e )
							{
								user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.SRRDropError" , e.getMessage( ) ) ) ;
								
//								return mapping.findForward( "successW" ) ;
							}
						}
						
						break ;
					case 5 :
						
						// toma paquetes a elimina
						quantity = f.getEliminarDLLI( ) ;
						
						if( quantity < 1 )
						{
							user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.DLLDropNegative" , quantity ) ) ;
							
//							return mapping.findForward( "successW" ) ;
						}
						else
						{
							
							try
							{
								// verifica cuantos paquetes estan disponibles
								int available = MasterCardDAO.quantityOfPackagesNotAssigned( cveAsset , 2 , 1 , 1 , 1 ) ;
								
								// en caso d que los disponibles sean menor que los que se quiere borrar
								if( available < quantity )
								{
									user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.DLLDropOver" , available ) ) ;
									
//									return mapping.findForward( "successW" ) ;
								}
								else
								{
									MasterCardDAO.eraseQuantityOfPackages( cveAsset , quantity , 2 , 1 , 1 , 1 ) ;
									
									f.setEliminarDLL( "" ) ;
								}
							}catch( Exception e )
							{
								user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.DLLDropError" , e.getMessage( ) ) ) ;
								
//								return mapping.findForward( "successW" ) ;
							}
						}
						
						break ;
					case 6 :
						
						// toma paquetes a elimina
						quantity = f.getEliminarDLRI( ) ;
						
						if( quantity < 1 )
						{
							user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.DLRDropNegative" , quantity ) ) ;
							
//							return mapping.findForward( "successW" ) ;
						}
						else
						{
							
							try
							{
								// verifica cuantos paquetes estan disponibles
								int available = MasterCardDAO.quantityOfPackagesNotAssigned( cveAsset , 2 , 1 , 2 , 1 ) ;
								
								// en caso d que los disponibles sean menor que los que se quiere borrar
								if( available < quantity )
								{
									user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.DLRDropOver" , available ) ) ;
									
//									return mapping.findForward( "successW" ) ;
								}
								else
								{
									
									MasterCardDAO.eraseQuantityOfPackages( cveAsset , quantity , 2 , 1 , 2 , 1 ) ;
									
									f.setEliminarDLR( "" ) ;
								}
							}catch( Exception e )
							{
								user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.DLRDropError" , e.getMessage( ) ) ) ;
								
//								return mapping.findForward( "successW" ) ;
							}
						}
						
						break ;
					case 7 :
						
						// toma paquetes a elimina
						quantity = f.getEliminarDRLI( ) ;
						
						if( quantity < 1 )
						{
							user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.DRLDropNegative" , quantity ) ) ;
							
//							return mapping.findForward( "successW" ) ;
						}
						else
						{
							
							try
							{
								// verifica cuantos paquetes estan disponibles
								int available = MasterCardDAO.quantityOfPackagesNotAssigned( cveAsset , 2 , 2 , 1 , 1 ) ;
								
								// en caso d que los disponibles sean menor que los que se quiere borrar
								if( available < quantity )
								{
									user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.DRLDropOver" , available ) ) ;
									
//									return mapping.findForward( "successW" ) ;
								}
								else
								{
									MasterCardDAO.eraseQuantityOfPackages( cveAsset , quantity , 2 , 2 , 1 , 1 ) ;
									
									f.setEliminarDRL( "" ) ;
								}
							}catch( Exception e )
							{
								user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.DRLDropError" , e.getMessage( ) ) ) ;
								
//								return mapping.findForward( "successW" ) ;
							}
						}
						
						break ;
					case 8 :
						
						// toma paquetes a elimina
						quantity = f.getEliminarDRRI( ) ;
						
						if( quantity < 1 )
						{
							user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.DRRDropNegative" , quantity ) ) ;
							
//							return mapping.findForward( "successW" ) ;
						}
						else
						{
							try
							{
								// verifica cuantos paquetes estan disponibles
								int available = MasterCardDAO.quantityOfPackagesNotAssigned( cveAsset , 2 , 2 , 2 , 1 ) ;
								
								// en caso d que los disponibles sean menor que los que se quiere borrar
								if( available < quantity )
								{
									user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.DRRDropOver" , available ) ) ;
									
//									return mapping.findForward( "successW" ) ;
								}
								else
								{
									MasterCardDAO.eraseQuantityOfPackages( cveAsset , quantity , 2 , 2 , 2 , 1 ) ;
									
									f.setEliminarDRR( "" ) ;
								}
							}catch( Exception e )
							{
								user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.DRRDropError" , e.getMessage( ) ) ) ;
								
//								return mapping.findForward( "successW" ) ;
							}
						}
						
						break ;
                                        case 9 :
						
						// toma paquetes a elimina
						quantity = f.getEliminarSRRI( ) ;
						
						if( quantity < 1 )
						{
							user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.SRRDropNegative" , quantity ) ) ;
							
//							return mapping.findForward( "successW" ) ;
						}
						else
						{
							
							try
							{
								// verifica cuantos paquetes estan disponibles
								int available = MasterCardDAO.quantityOfPackagesRegionalsNotAssigned( cveAsset , 1 , 2 , 2 , 1 ) ;
								
								// en caso d que los disponibles sean menor que los que se quiere borrar
								if( available < quantity )
								{
									user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.SRRDropOver" , available ) ) ;
									
//									return mapping.findForward( "successW" ) ;
								}
								else
								{
									MasterCardDAO.eraseQuantityOfPackagesRegionals( cveAsset , quantity , 1 , 2 , 2 , 1 ) ;
									
									f.setEliminarSRR( "" ) ;
								}
							}catch( Exception e )
							{
								user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.SRRDropError" , e.getMessage( ) ) ) ;
								
//								return mapping.findForward( "successW" ) ;
							}
						}
						
						break ;
                                        case 10 :
						
						// toma paquetes a elimina
						quantity = f.getEliminarDRRI( ) ;
						
						if( quantity < 1 )
						{
							user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.DRRDropNegative" , quantity ) ) ;
							
//							return mapping.findForward( "successW" ) ;
						}
						else
						{
							try
							{
								// verifica cuantos paquetes estan disponibles
								int available = MasterCardDAO.quantityOfPackagesRegionalsNotAssigned( cveAsset , 2 , 2 , 2 , 1 ) ;
								
								// en caso d que los disponibles sean menor que los que se quiere borrar
								if( available < quantity )
								{
									user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.DRRDropOver" , available ) ) ;
									
//									return mapping.findForward( "successW" ) ;
								}
								else
								{
									MasterCardDAO.eraseQuantityOfPackagesRegionals( cveAsset , quantity , 2 , 2 , 2 , 1 ) ;
									
									f.setEliminarDRR( "" ) ;
								}
							}catch( Exception e )
							{
								user.setMessageError( MCUtil.messages.getString( "com.mastercard.assets.web.errors.modules.asset.packages.DRRDropError" , e.getMessage( ) ) ) ;
								
//								return mapping.findForward( "successW" ) ;
							}
						}
						
						break ;        
					default :
						
                                                MasterCardDAO.closeEntityManager( ) ;
						return mapping.findForward( "successW" ) ;
				}
				
				MCUtil.updatePackageManager( MasterCardDAO.getAllPackagesOfAsset( cveAsset , 1 ) , f.getPackageManager( ) ) ;
				
				if( item == null ) {
                                    MasterCardDAO.closeEntityManager( ) ;
                                    return mapping.findForward( "NoItemFinded" ) ;
                                }
					
				
				request.setAttribute( "ItemFinded" , item ) ;
				
				request.setAttribute( "IdSearched" , new Integer( cveAsset ) ) ;
				
//				user.setNextWorkArea( "/WEB-INF/pages/WorkArea/AssetsModificarPaqueteDesplegarFormulario.jsp" ) ;
				user.setNextWorkArea( "/WEB-INF/pages/WorkArea/AssetsModificarPaqueteDesplegarFormulario.jsp" ) ;
				// coloca el form en el request
				request.setAttribute( "AssetModificarPaquetesForm" , f ) ;
                                
                                
                                if ( user.getActualRoleId( ) == 6 ) {
                            
                            List< TblPaqueteRegional > sencillos = new ArrayList< TblPaqueteRegional >( ) ;
                            List< TblPaqueteRegional > dobles = new ArrayList< TblPaqueteRegional >( ) ;
                            int SAsignado = 0 , SDisponible = 0 , DAsignado = 0 , DDisponible = 0 , totalPaqReg = 0 ;
                            
                            List< TblPaqueteRegional > tblPaquetesRegionales =  MasterCardDAO.getAllPackagesRegionalOfAsset( asset.getCveAsset( ) , 1 ) ;
                            totalPaqReg = tblPaquetesRegionales.size( ) ;
                            
                            for( TblPaqueteRegional paqReg : tblPaquetesRegionales ) {
                                int x = 1 ;
                                if( paqReg.getHabitacion( ) == 1 ) {
                                    sencillos.add( paqReg ) ;
                                    if( paqReg.getBandera( ) == 1 ) {
                                        SDisponible += x ;
                                    } else if( paqReg.getBandera( ) == 2 ) {
                                        SAsignado += x ;
                                    }
                                } else if( paqReg.getHabitacion( ) == 2 ) {
                                    dobles.add( paqReg ) ;
                                    if( paqReg.getBandera( ) == 1 ) {
                                        DDisponible += x ;
                                    } else if( paqReg.getBandera( ) == 2 ) {
                                        DAsignado += x ;
                                    }
                                }
                            }
                            request.setAttribute("Sencillos", sencillos);
                            request.setAttribute("Dobles", dobles);
                            request.setAttribute("rolId", user.getActualRoleId( ));
                            request.setAttribute("SAsignado", SAsignado);
                            request.setAttribute("SDisponible", SDisponible);
                            request.setAttribute("DAsignado", DAsignado);
                            request.setAttribute("DDisponible", DDisponible);
                            request.setAttribute("totalPaqReg", "" + totalPaqReg);
                            
                        }
				
                                MasterCardDAO.closeEntityManager( ) ;                                
                                return mapping.findForward( "successW" ) ;
                                
				
			}
			
		}catch( Exception e )
		{
			user.setMessageError( e.getMessage( ) ) ;
//			
//			ByteArrayOutputStream baos = new ByteArrayOutputStream( ) ;
//			e.printStackTrace( new PrintStream( baos ) ) ;
//			
//			user.setMessageError( user.getMessageError( ) + "<br> " + new String( baos.toByteArray( ) ) ) ;
		}
		
                MasterCardDAO.closeEntityManager( ) ;                
	  	return mapping.findForward( "success" ) ;
	}
	
}
